/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package iie.tools;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import org.apache.log4j.Logger;

/**
 *
 * @author zhangyun
 */
public class FileTools {
    private static Logger logger = Logger.getLogger(FileTools.class);
    public static String readFileByChars(String fileName) {
        File file = new File(fileName);
        Reader reader = null;
        String finalStr ="";
        try {
            //System.out.println("以字符为单位读取文件内容，一次读一个字节：");
            // 一次读一个字符
            reader = new InputStreamReader(new FileInputStream(file));
            int tempchar;
            while ((tempchar = reader.read()) != -1) {
                // 对于windows下，\r\n这两个字符在一起时，表示一个换行。
                // 但如果这两个字符分开显示时，会换两次行。
                // 因此，屏蔽掉\r，或者屏蔽\n。否则，将会多出很多空行。
                if (((char) tempchar) != '\r') {
                    //System.out.print((char) tempchar);
                    finalStr = finalStr+(char) tempchar;
                }
            }
            reader.close();
            //System.out.println(finalStr);
            //logger.debug(finalStr);
            
        } catch (Exception e) {
            //e.printStackTrace();
            logger.debug("read xmlfile err!",e);
        }
        return finalStr;
//        try {
//            //System.out.println("以字符为单位读取文件内容，一次读多个字节：");
//            // 一次读多个字符
//            char[] tempchars = new char[30];
//            int charread = 0;
//            reader = new InputStreamReader(new FileInputStream(fileName));
//            
//            // 读入多个字符到字符数组中，charread为一次读取字符数
//            while ((charread = reader.read(tempchars)) != -1) {
//                // 同样屏蔽掉\r不显示
//                if ((charread == tempchars.length)
//                        && (tempchars[tempchars.length - 1] != '\r')) {
//                    //System.out.print(tempchars);
//                    finalStr = finalStr+tempchars;
//                } else {
//                    for (int i = 0; i < charread; i++) {
//                        if (tempchars[i] == '\r') {
//                            continue;
//                        } else {
//                            //System.out.print(tempchars[i]);
//                            finalStr = finalStr + tempchars[i];
//                        }
//                    }
//                }
//            }
//            System.out.println(finalStr);
//        } catch (Exception e1) {
//            e1.printStackTrace();
//        } finally {
//            if (reader != null) {
//                try {
//                    reader.close();
//                } catch (IOException e1) {
//                }
//            }
//        }
    }
}
